স্ট্রাকচারাল প্যাটার্ন: অ্যাডাপ্টার, ডেকোরেটর

ডিজাইন প্যাটার্নস (Design Patterns) - কম্পিউটার প্রোগ্রামিং ফান্ডামেন্টাল (Computer Programming Fundamentals) - Computer Science

216

স্ট্রাকচারাল প্যাটার্ন হল ডিজাইন প্যাটার্নের একটি শ্রেণী যা অবজেক্টগুলোর মধ্যে সম্পর্ক স্থাপন করে এবং তাদের মধ্যে সম্পর্ক তৈরি করার জন্য সহজ ও কার্যকরী উপায় প্রদান করে। এই প্যাটার্নগুলো মূলত কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বাড়াতে ব্যবহৃত হয়। নিচে দুইটি জনপ্রিয় স্ট্রাকচারাল প্যাটার্ন—অ্যাডাপ্টার প্যাটার্ন এবং ডেকোরেটর প্যাটার্ন—এর বিশদ আলোচনা করা হলো।

১. অ্যাডাপ্টার প্যাটার্ন (Adapter Pattern)

অ্যাডাপ্টার প্যাটার্ন হল একটি স্ট্রাকচারাল ডিজাইন প্যাটার্ন যা একটি ক্লাসের ইন্টারফেসকে অন্য ক্লাসের ইন্টারফেসের সাথে সামঞ্জস্য করতে সহায়ক। এটি বিদ্যমান কোডের সাথে নতুন কোডের সমন্বয় ঘটাতে ব্যবহৃত হয়, যাতে পুরনো এবং নতুন ক্লাস একত্রে কাজ করতে পারে।

উদাহরণ:

ধরি, আমাদের একটি OldSystem ক্লাস আছে যা একটি নির্দিষ্ট পদ্ধতিতে কাজ করে, এবং আমাদের একটি NewSystem ক্লাস আছে যা ভিন্ন ইন্টারফেসে কাজ করে। অ্যাডাপ্টার প্যাটার্ন ব্যবহার করে আমরা OldSystem কে NewSystem এ পরিবর্তন করতে পারি।

# পুরনো সিস্টেম
class OldSystem:
    def old_method(self):
        return "Old System Method"

# নতুন সিস্টেম
class NewSystem:
    def new_method(self):
        return "New System Method"

# অ্যাডাপ্টার ক্লাস
class Adapter:
    def __init__(self, old_system):
        self.old_system = old_system

    def new_method(self):
        return self.old_system.old_method()

# ব্যবহারের উদাহরণ
old_system = OldSystem()
adapter = Adapter(old_system)

print(adapter.new_method())  # Old System Method

২. ডেকোরেটর প্যাটার্ন (Decorator Pattern)

ডেকোরেটর প্যাটার্ন হল একটি স্ট্রাকচারাল ডিজাইন প্যাটার্ন যা অবজেক্টের আচরণ বা বৈশিষ্ট্য যুক্ত করার জন্য ব্যবহৃত হয়। এটি মূল অবজেক্টে পরিবর্তন না করে, অবজেক্টের উপর নতুন ফাংশনালিটি যোগ করার একটি উপায়।

উদাহরণ:

ধরি, আমাদের একটি Coffee ক্লাস আছে এবং আমরা এতে কিছু নতুন ফিচার (যেমন দুধ, চিনি) যোগ করতে চাই। ডেকোরেটর প্যাটার্ন ব্যবহার করে আমরা নতুন বৈশিষ্ট্য যোগ করতে পারি।

# মৌলিক কফি ক্লাস
class Coffee:
    def cost(self):
        return 5

# ডেকোরেটর ক্লাস
class MilkDecorator:
    def __init__(self, coffee):
        self.coffee = coffee

    def cost(self):
        return self.coffee.cost() + 2  # দুধের দাম যোগ করা

class SugarDecorator:
    def __init__(self, coffee):
        self.coffee = coffee

    def cost(self):
        return self.coffee.cost() + 1  # চিনির দাম যোগ করা

# ব্যবহারের উদাহরণ
coffee = Coffee()
print("Cost of plain coffee:", coffee.cost())

milk_coffee = MilkDecorator(coffee)
print("Cost of coffee with milk:", milk_coffee.cost())

sugar_milk_coffee = SugarDecorator(milk_coffee)
print("Cost of coffee with milk and sugar:", sugar_milk_coffee.cost())

উপসংহার

অ্যাডাপ্টার প্যাটার্ন এবং ডেকোরেটর প্যাটার্ন দুটি গুরুত্বপূর্ণ স্ট্রাকচারাল ডিজাইন প্যাটার্ন যা কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বাড়াতে সহায়ক। অ্যাডাপ্টার প্যাটার্ন বিভিন্ন ইন্টারফেসের মধ্যে সংযোগ ঘটায়, যখন ডেকোরেটর প্যাটার্ন মৌলিক অবজেক্টের বৈশিষ্ট্য বাড়ায়। এই প্যাটার্নগুলো সফটওয়্যার ডিজাইনে এবং বাস্তবায়নে কার্যকরী ভূমিকা পালন করে।

Promotion

Are you sure to start over?

Loading...